package dxf.tables;


import dxf.DXFPoint;
import dxf.annotations.DXFElementType;
import dxf.annotations.DXFPointProperty;
import dxf.annotations.DXFProperty;
import dxf.annotations.DXFTerminator;


/**
 * Un oggetto della classe <code>VPort</code> rappresenta una tabella VPORT in
 * un DXFFile.
 *
 * @author Andrea Zonca
 * @author Michele Brignoli
 * @version 1.0
 */

@DXFElementType("TABLE")
@DXFTerminator("ENDTAB")
public class VPort extends Table {

	@DXFProperty(100)
	private String subMarker="AcDbViewportTableRecord";

	@DXFProperty(2)
	private String name="*ACTIVE";

	@DXFPointProperty(xCode=12,yCode=22)
	private DXFPoint center;

	@DXFProperty(40)
	private int viewHeight;

	@DXFProperty(41)
	private double viewRatio = 1.57620320856;

	/**
	 * Crea una tabella ViewPort, impostando il centro della tabella
	 *
	 * @param center il centro della VPort
	 * @param viewHeight l'altezza
	 */
	public VPort(DXFPoint center, int viewHeight) {
		this.center = center;
		this.viewHeight = viewHeight;
	}

	/**
	 * Restituisce il marker della sottoclasse
	 *
	 * @return il marker
	 */
	public String getSubMarker() {
		return subMarker;
	}

	/**
	 * Restituisce il nome della ViewPort
	 *
	 * @return il nome della ViewPort
	 */
	public String getName() {
		return name;
	}

	/**
	 * Imposta il nome della ViewPort
	 *
	 * @param name il nome della ViewPort
	 * @return l'oggetto che ha chiamato il metodo
	 */
	public VPort setName(String name) {
		this.name = name;
		return this;
	}

	/**
	 * Restituisce il centro (2D) della ViewPort
	 *
	 * @return il centro della ViewPort
	 */
	public DXFPoint getCenter() {
		return center;
	}

	/**
	 * Restituisce l'altezza della ViewPort
	 *
	 * @return l'altezza
	 */
	public int getViewHeight() {
		return viewHeight;
	}

	/**
	 * Imposta l'altezza della ViewPort
	 *
	 * @param viewHeight l'altezza
	 * @return l'oggetto che ha chiamato il metodo
	 */
	public VPort setViewHeight(int viewHeight) {
		this.viewHeight = viewHeight;
		return this;
	}

	/**
	 * Restituisce il rapporto della ViewPort
	 *
	 * @return il rapport della ViewPort
	 */
	public double getViewRatio() {
		return viewRatio;
	}

	/**
	 * Imposta il rapporto della ViewPort
	 *
	 * @param viewRatio il valore per la proporzione
	 * @return l'oggetto che ha chiamato il metodo
	 */
	public VPort setViewRatio(double viewRatio) {
		this.viewRatio = viewRatio;
		return this;
	}



}
